Ship

20 posts

Ship banner
Ship

Ship

@paralect_ship

Full-stack boilerplate with guidelines to build MVPs in days and scale your product for years. Try it out: npx create-ship-app@latest

Launch your product 👉 Katılım Ocak 2024
77 Takip Edilen48 Takipçiler
Sabitlenmiş Tweet
Ship
Ship@paralect_ship·
🚀 Seven years ago, Paralect engineers faced a major development headache: the repetitive setup for new projects. 📅 We took our first step on October 11, 2017, with Ship - a robust, open-source platform. But Ship isn't just a tool today; it's a testament to durability and scalability, effectively handling massive loads and powering over 100+ live products! 🔥 Meet Ship: A full-stack boilerplate honed by 13 years of Paralect's innovation. It's free, open-source, and built to last. Explore Ship's tech stack: 🌐 Koa + node.js (@nodejs) 🔮 Next.js (@nextjs) + React (@reactjs) 🎨 Mantine (@mantinedev) for stylish components 📦 Turborepo (@turborepo) for monorepo management 📚 node-mongo: reactive extension of MongoDB driver 📧 React-email & Sendgrid for seamless email flows 🔌 Websockets via Socket.IO Discover more here: ship.paralect.com #paralectship #dev #opensource #fullstack #js #product #starter #boilerplate #paralect
Ship tweet media
English
3
4
19
1.7K
Ship
Ship@paralect_ship·
Styling 🚢 One of our biggest challenges when launching new projects was dealing with UI components. We went through a long journey, starting from writing custom components from scratch to using other component libraries in our production projects 🛣️ Finally, we discovered that @mantinedev was the perfect solution for our UI component needs 🔥 Mantine offers a wide range of customizable components and hooks that make it easy to create visually appealing and functional interfaces 💅 It's an ideal match! 💘 📎 Learn more about Mantine in Ship here: ship.paralect.com/docs/web/styli… #mantine #ui #frontend #opensource #fullstack #boilerplate #javascript
English
0
0
4
96
Ship
Ship@paralect_ship·
Authentication flow 🚢 Ship aims to be the go-to solution for medium-sized web applications, encompassing various user flows. One crucial flow that Ship focuses on is Authentication 🗝️ When it comes to Authentication, Ship has got you covered with these features: 🔑 Sign In 📝 Sign Up 🔗 Sign Up / Sign In with Google 🔒 Forgot password 🔄 Reset Password Keep in mind that this serves as our foundation for the flow. You have the freedom to personalize the form fields to align with your specific needs while maintaining the established structure ☝️ #auth #opensource #fullstack #boilerplate #javascript
Ship tweet media
English
0
0
2
60
Ship
Ship@paralect_ship·
Websockets 🚢 In the realm of real-time communication between clients and servers, websockets have emerged as a powerful tool. Ship harnesses the capabilities of websockets to facilitate seamless interaction. 💪 To streamline the process, we've already established a service on each end of the application called 'socket-service'. This service manages connections and implements token-based authentication for enhanced security. 🛡️ Ship specifically utilizes Socket.io (@SocketIO)- a versatile library that empowers low-latency, bidirectional, and event-driven communication between clients and servers. ⚡ Furthermore, we integrate a Redis adapter that relies on the Redis Pub/Sub mechanism (redis.io/topics/pubsub) for enhanced efficiency and scalability. 📈 #websockets #opensource #fullstack #boilerplate #javascript
Ship tweet media
English
0
1
4
70
Ship
Ship@paralect_ship·
Mailer 🚢 Simplify email template generation with the Ship's Mailer package 📨 Create stunning email templates effortlessly using React components with the 'React Email' library. Each template is customizable and corresponds to a specific email type. 💪 Adding a new template? Easy-peasy. ⚡ Head over to the 'packages/mailer' turborepo package for seamless development. Preview your email instantly on port 3003. Sending an email? No worries. ✋ Just use the 'sendTemplate' function from 'emailService'. Simply provide the recipient, subject, template, and parameter object. ☁️ Ready to use Ship's mailer? Just set the Sendgrid API key as an environment variable in your backend app. 🔧 Discover more about Mailer in our documentation 🌐 ship.paralect.com/docs/mailer
Ship tweet mediaShip tweet media
English
0
0
2
36
Ship
Ship@paralect_ship·
Cloud Storage 🚢 Ship's cloud storage service, powered by the '@aws-sdk/client-s3' library, provides seamless functionality for effortlessly handling file uploads to the cloud. ☁️ Our service offers basic features: 📤 File uploads (both private and public) 🔗 File retrieval options (including signed URLs) 📋 Copying 🗑️ Deletion It's compatible not only with Amazon S3 storage but also with Digital Ocean Spaces. 📊 The base template we provide includes a straightforward example that demonstrates how to upload a user avatar to the cloud, as well as how to update and delete it. 🪧 Feel free to explore the source code of this service and share your valuable feedback! github.com/paralect/ship/…
Ship tweet media
English
0
0
5
42
Ship
Ship@paralect_ship·
Logging 🚢 To ensure comprehensive tracking and monitoring within the application, Ship utilizes the 'winston' library to configure its logger instance. ✏️ The base template provides a thoughtfully crafted logging setup with different levels for various purposes. Take a look at the following log types: 📄 Request and response logs provide detailed information, including endpoint names and request status. 🚫 Error logs capture unsuccessful requests, helping to identify and address potential issues. 🌐 Websocket events are logged to gain insightful insights. 💾 The dedicated database CUD handler ensures thorough tracking of database operations. 📧 Logs related to sending emails offer valuable data points. The diverse range of logs guarantees a well-rounded approach to tracking and monitoring various aspects of the application. ⚡
English
0
0
3
32
Ship
Ship@paralect_ship·
Scheduler 🚢 In the world of web applications, repetitive tasks can be a real headache 🤯 But fear not, because we have the solution! 🔥 Say hello to Ship's Scheduler! ⏰ This powerful tool takes care of those pesky tasks that need to be executed at specific intervals throughout the day, month, or year 📆 Imagine effortlessly: 📧 Sending regular emails to customers 🛡️ Safeguarding your organization's critical data with backups 🧹 Keeping your databases clean by clearing logs The Scheduler has got you covered! With its user-friendly interface, you can easily schedule jobs for execution on designated dates or even set recurring patterns. 🔁 So, how does it work? 🤔 The Scheduler consists of two essential components: cron jobs and handlers. ⏲️ Cron jobs patiently wait for the perfect moment, triggering more specific events. 👂 Handlers diligently listen to events generated by cron jobs, seamlessly running the assigned tasks. 🔗 Explore our comprehensive documentation for all the details: ship.paralect.com/docs/scheduler
Ship tweet mediaShip tweet media
English
0
1
9
61
Ship
Ship@paralect_ship·
Migrator 🚢 🌱 As the application grows, your database schema will also evolve. To ensure compatibility, you'll need to update existing documents when making changes to the schema (adding, removing, or replacing fields). 📝 Migrator is a service that handles MongoDB migrations, versioning, and logging, ensuring that your database data matches the new schema or requirements. Here's how it works 🛠️ 🔍 Migrator retrieves the current successful migration version from the 'migrationVersion' collection. ⬆️ It applies each migration above this version in sequence. 📊 Each migration is logged in the 'migrationLog' collection with its status. Example 🌟 To assign special rights to some users, we add a new boolean field 'isAdmin' to the user schema. New users will have 'isAdmin' set automatically upon creation, but old users won't. 🥲 Migrator helps add the field to old users. Take a look at the screenshot to get a glimpse of the migration code 🖥️ More about Migrator in Ship's documentation: ship.paralect.com/docs/migrator
Ship tweet media
English
0
2
10
115
Ship
Ship@paralect_ship·
Introducing node-mongo: an open-source reactive extension to the official Node.js MongoDB driver, developed by Paralect engineers. ⚡ Tested by hundreds of live products, node-mongo offers unbeatable features: 🔑 ObjectId mapping: Automatically converts 'ObjectId' to 'string' for the '_id' field. ✅ Schema validation: Validate your data before saving with Zod schemas. 🚀 Reactive: Get real-time events for document creation, updates, and deletions. ⏲️ CUD operations timestamps: Auto-set 'createdOn', 'updatedOn', and 'deletedOn' timestamps. 📫 Outbox support: Implement the transactional outbox pattern with `_outbox` collections. 📖 Paging: Enjoy a high-level paging API. and much more... Don't wait, try it now! Install with 'npm i @paralect/node-mongo' and share your valuable feedback in this thread. ✍️ Explore the power of our open-source MongoDB driver extension here: ship.paralect.com/docs/packages/…
English
0
1
9
70
Ship
Ship@paralect_ship·
Database 🚢 Ship relies on MongoDB as its main database. Embracing a document-oriented approach to data management, MongoDB offers Ship flexibility and ease of development that aligns with their goals 🏄 Why MongoDB? 🤔 📊 Easy Horizontal Scaling: MongoDB enables easy scaling across multiple servers to manage increasing data demands. 🗺️ Simplified Data Mapping: Its document-oriented approach streamlines the mapping of application data to database objects. 📜 Flexible Document Schemas: Offers adaptable, schema-less document structures, easing adjustments to evolving data needs. While we continue to love and utilize MongoDB in production, we are not limited to it 📈 We complement MongoDB with relational databases and other specialized databases like Redis for caching or Elasticsearch for full-text search 🔎 Discover why MongoDB is our go-to choice at Paralect from the arcticle by @that_igor_ : igor.paralect.com/blog/why-we-de…
English
0
0
10
140
Ship
Ship@paralect_ship·
Schemas 🚢 Ship harnesses the power of Zod - the ultimate data validation library. 🌟 Why Zod? 🤔 Zod is designed with TypeScript in mind, enabling us to infer types from schemas rather than writing them separately. 💪 Ship minimizes errors across three critical domains: 1. Enhancing the user experience through web form validation, effectively preventing invalid submissions ✅ 2. Maintaining data integrity, error prevention, and predictability in API requests 🔄 3. Ensuring data integrity and preventing inconsistencies by validating data before database insertions and updates 🔒 Discover more 🔍 ship.paralect.com/docs/package-s…
Ship tweet mediaShip tweet mediaShip tweet media
English
0
1
11
57
Ship
Ship@paralect_ship·
Architecture 🚢 Every technological decision is driven by simplicity. ✨ We believe that the product used by people is the only reason why technologies exist. Our goal is to help products stand up on their feet without investing too much in the early stages. 🤝 On a high level, Ship consists of the following parts: Web 🌐 API 📡 Scheduler ⏰ Migrator 📁 Deployment 🚀 Check out the image below to see how they all fit together. Learn more here 📚 ship.paralect.com/docs/architect…
Ship tweet media
English
0
3
11
219