Telegram Web
🫑 Teable: Open Source Airtable Alternative atop Postgres

Airtable is a popular data table database SaaS, but here’s a NestJS-powered open-source alternative in a similar manner that sits atop Postgres. GitHub repo.

Teable Team
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘4❀2πŸ”₯2🀣1
CHALLENGE

function Device(name) {
this.name = name;
this.isOn = false;
}

Device.prototype.turnOn = function() {
this.isOn = true;
return `${this.name} is now on`;
};

function Smartphone(name, model) {
Device.call(this, name);
this.model = model;
}

Smartphone.prototype = Object.create(Device.prototype);
Smartphone.prototype.constructor = Smartphone;

Smartphone.prototype.turnOn = function() {
const result = Device.prototype.turnOn.call(this);
return `${result} (model: ${this.model})`;
};

const myPhone = new Smartphone('iPhone', '13 Pro');
console.log(myPhone.turnOn());
πŸ”₯7❀2πŸ‘2🀣1
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘4❀1πŸ”₯1
CHALLENGE

let obj1 = { id: 1 };
let obj2 = { id: 2 };
let obj3 = { id: 3 };

const weakSet = new WeakSet([obj1, obj2]);

weakSet.add(obj3);
weakSet.delete(obj1);

obj2 = null;

const remainingObjects = [...weakSet];

console.log(remainingObjects);
πŸ‘2πŸ”₯1
πŸ‘9πŸ”₯5❀1
πŸ₯³ Next.js Global Hackathon

- 500 teams
- 10 days


Next.js team
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ”₯9πŸ‘2
CHALLENGE

const secretData = { password: 'abc123' };
const mySet = new WeakSet();
mySet.add(secretData);

// Later in the code
delete secretData.password;

const checkAccess = (obj) => {
console.log(mySet.has(obj));
};

checkAccess(secretData);
checkAccess({ password: 'abc123' });
❀7πŸ‘2πŸ”₯2
πŸ‘3πŸ”₯2❀1
πŸ‘ Bare: A New Lightweight Runtime for Modular JS Apps

Imagine something like Node.js but really stripped back: bare, if you will. Like Node, it’s built on top of V8 and libuv (though it's designed to support multiple JavaScript engines) but Bare’s approach is to provide as little as possible (a module system, addon system, and thread support) and then rely upon userland modules that can evolve independently of Bare itself. It’s an interesting idea – more details here.

Holepunch
Please open Telegram to view this post
VIEW IN TELEGRAM
❀4πŸ‘4πŸ”₯2
CHALLENGE

async function test() {
console.log('1');

setTimeout(() => {
console.log('2');
}, 0);

await Promise.resolve();
console.log('3');

new Promise(resolve => {
console.log('4');
resolve();
}).then(() => {
console.log('5');
});

console.log('6');
}

test();
console.log('7');
πŸ‘5❀2πŸ”₯1
❀14πŸ€”6πŸ‘3
πŸ‘€ Exploring Art with TypeScript, Jupyter, Polars, and Observable Plot

One of Deno’s compelling features is its support for Jupyter Notebooks and easy notebook-style programming, such as is common in the Python world. Trevor looks at a practical use of using such a notebook environment for data exploration.

Trevor Manz
Please open Telegram to view this post
VIEW IN TELEGRAM
❀6πŸ”₯2🀩2πŸ‘1
CHALLENGE

function getCity(person) {
return person?.address?.city ?? 'Unknown';
}

const data = [
null,
{ name: 'Alice' },
{ name: 'Bob', address: null },
{ name: 'Charlie', address: { street: '123 Main' } },
{ name: 'David', address: { city: 'Boston' } }
];

const cities = data.map(getCity);
console.log(cities);
πŸ‘3❀1
🀨 Anime.js 4.0: A JS Animation Library for the Web

If you’re tired of Web animations, maybe Anime.js will refresh your appetite. This is a major upgrade to a mature library for animating CSS properties, SVGs, the DOM, and JS objects. It’s smooth, well-built, and now complete with fresh documentation.

Julian Garner
Please open Telegram to view this post
VIEW IN TELEGRAM
❀6πŸ‘5πŸ”₯4
CHALLENGE

const p1 = Promise.resolve(1);
const p2 = new Promise(resolve => resolve(2));
const p3 = new Promise(resolve => setTimeout(() => resolve(3), 0));
const p4 = Promise.reject(4).catch(err => err);

Promise.all([p1, p2, p3, p4])
.then(values => {
const result = values.reduce((acc, val) => {
return acc + val;
}, 0);
console.log(result);
})
.catch(err => console.log('Error:', err));
❀5πŸ‘1
❀7πŸ€”5πŸ‘2
CHALLENGE

const obj = {
[Symbol('a')]: 'hidden',
[Symbol.for('b')]: 'registered',
c: 'normal'
};

const symbols = Object.getOwnPropertySymbols(obj);
const keys = Object.keys(obj);
const allProps = Reflect.ownKeys(obj);

console.log(symbols.length, keys.length, allProps.length);
πŸ‘3❀2
What is the output?
Anonymous Quiz
25%
2 3 5
43%
2 1 3
21%
3 1 3
11%
0 1 1
πŸ‘8❀5πŸ”₯2🀣2πŸ€”1
2025/07/13 19:29:15
Back to Top
HTML Embed Code: