What is platformatic?
Platformatic is a versatile npm package designed to simplify the development of modern web applications. It provides a suite of tools and features that streamline the process of building, deploying, and managing web services and APIs.
What are platformatic's main functionalities?
API Development
This feature allows developers to quickly set up and manage API endpoints. The code sample demonstrates how to create a simple server with a single GET endpoint that returns a 'Hello, world!' message.
const { createServer } = require('platformatic');
const server = createServer({
routes: [
{
method: 'GET',
url: '/hello',
handler: async (request, reply) => {
return { message: 'Hello, world!' };
}
}
]
});
server.listen(3000, (err) => {
if (err) {
console.error('Error starting server:', err);
} else {
console.log('Server listening on port 3000');
}
});
Database Integration
Platformatic provides seamless database integration, allowing developers to connect to and query databases easily. The code sample shows how to set up a route that fetches data from a 'users' table in a database.
const { createServer } = require('platformatic');
const { connect } = require('platformatic-db');
const server = createServer({
routes: [
{
method: 'GET',
url: '/users',
handler: async (request, reply) => {
const db = await connect();
const users = await db.query('SELECT * FROM users');
return users;
}
}
]
});
server.listen(3000, (err) => {
if (err) {
console.error('Error starting server:', err);
} else {
console.log('Server listening on port 3000');
}
});
Authentication
Platformatic includes built-in authentication mechanisms to secure endpoints. The code sample demonstrates how to protect a route using an authentication middleware.
const { createServer } = require('platformatic');
const { authenticate } = require('platformatic-auth');
const server = createServer({
routes: [
{
method: 'GET',
url: '/secure',
preHandler: authenticate,
handler: async (request, reply) => {
return { message: 'This is a secure endpoint' };
}
}
]
});
server.listen(3000, (err) => {
if (err) {
console.error('Error starting server:', err);
} else {
console.log('Server listening on port 3000');
}
});
Other packages similar to platformatic
express
Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications. Compared to Platformatic, Express is more lightweight and requires additional middleware for features like authentication and database integration.
hapi
Hapi is a rich framework for building applications and services. It is known for its powerful plugin system and configuration-based approach. Hapi offers more built-in features compared to Express but may have a steeper learning curve compared to Platformatic.
nestjs
NestJS is a progressive Node.js framework for building efficient, reliable, and scalable server-side applications. It uses TypeScript by default and is heavily inspired by Angular. NestJS provides a more structured and opinionated approach compared to Platformatic.
Platformatic open-source tools simplify
building and
running Node.js applications, with best practices baked in.
Install
npm create platformatic@latest
npm install platformatic
Follow our Quick Start Guide
guide to get up and running with Platformatic.
Documentation
Check out our full documentation at docs.platformatic.dev.
Support
If you run into a bug, issues or have a suggestion for improvement, please raise an
issue on GitHub or join our Discord feedback channel.
License
Apache 2.0