Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

welcome to the team blog post styled #31

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .eleventy.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,15 @@ module.exports = function (eleventyConfig) {

// Minify CSS
eleventyConfig.addFilter('cssmin', function (code) {
// Disable minify for dev to speed up hot reload
// if (process.env.ELEVENTY_RUN_MODE === 'serve') return code
return new CleanCSS({}).minify(code).styles
})

// Minify JS
eleventyConfig.addFilter('jsmin', function (code) {
// Disable minify for dev to speed up hot reload
// if (process.env.ELEVENTY_RUN_MODE === 'serve') return code
let minified = UglifyJS.minify(code)
if (minified.error) {
console.log('UglifyJS error: ', minified.error)
Expand Down
146 changes: 137 additions & 9 deletions _includes/assets/css/inline.css
Original file line number Diff line number Diff line change
Expand Up @@ -323,6 +323,10 @@ body {
position: relative;
}

article.post .byline {
text-align: right;
}

article.post p {
padding-bottom: 1rem;
text-justify: inter-word;
Expand Down Expand Up @@ -359,19 +363,18 @@ article.post ol {
list-style: decimal;
padding-left: 2rem;
}

article.post ul {
list-style: disc;
padding-left: 2rem;
margin-bottom: 1rem;
}

article .byline {
text-align: right;
}

article a, footer a:hover {
article a,
footer a:hover {
text-decoration: underline;
}

.buzzwords li {
padding: 0.3em;
display: inline-block;
Expand Down Expand Up @@ -406,15 +409,13 @@ article table {
width: 100%;
margin: 1rem 0;
}
article table tr {
/* border-bottom: 12px solid rgba(0,0,0,0); */

}
article table th {
/* border: 24px solid rgba(0,0,0,0); */
/* background-color: rgba(35,35,15,0.25); */
padding: 0.5rem 1rem;
}

article table td {
/* border: 24px solid rgba(0,0,0,0); */
background-color: rgba(0,0,25,0.25);
Expand All @@ -435,4 +436,131 @@ li.selected {

#featureTabContent article:not(.active), #tabContent article:not(.active) {
display: none;
}
}

/* new blog post starts */
article.post.newpost {
min-width: 830px;
}

article.post.newpost h1 {
font-family: 'Geist';
font-style: normal;
font-weight: 650;
font-size: 52px;
line-height: 57px;
letter-spacing: -0.04em;
margin: 10px 0;
color: #2C2C2C;
}

article.post.newpost h2,
article.post.newpost blockquote p {
font-family: 'Inter Tight', sans-serif;
font-style: normal;
text-align: left;
font-weight: 600;
font-size: 30px;
line-height: 40px;
letter-spacing: 0.01em;
color: #2C2C2C;
margin-bottom: 36px;
margin-top: 26px;
text-wrap: balance;
padding-bottom: unset;
}

article.post.newpost p {
font-family: 'Geist', sans-serif;
font-style: normal;
font-weight: 400;
font-size: 19px;
line-height: 29px;
letter-spacing: 0.02em;
color: #2C2C2C;
padding-bottom: 40px;
}

article.post.newpost .byline {
text-align: unset;
font-family: 'Geist';
font-style: normal;
font-weight: 500;
line-height: 25px;
color: #2C2C2C;
opacity: 0.4;
padding-top: 10px !important;
}

article.post.newpost .byline * {
font-size: 16px;
}

article.post.newpost .byline a {
color: #2C2C2C !important;
}

article.post.newpost strong {
font-weight: 700;
}

article.post.newpost pre {
border-radius: 10px;
margin-bottom: 40px;
padding: 24px;
background: #2d2d2d;
}

article.post.newpost p > code {
background-color: #f0f0f0;
padding: 2px 8px;
border-radius: 4px;
font-weight: 700;
}

article.post.newpost a {
font-weight: 700;
color: #F16C12;
}

article.post.newpost a:hover {
color: #2C2C2C;
}

article.post.newpost img {
width: 100%;
border-radius: 16px;
object-fit: cover;
margin: 0 0 40px 0;
}

article.post.newpost .tags {
text-align: unset;
font-family: 'Geist';
font-style: normal;
font-weight: 500;
font-size: 16px;
line-height: 25px;
color: #2C2C2C;
opacity: 0.4;
}

article.post.newpost .tags a {
color: #2C2C2C;
text-decoration: unset;
font-weight: 500;
}

article.post.newpost .tags a:hover {
text-decoration: underline;
}

article.post.newpost .tags a:before {
content: '#';
}

article.post.newpost nav {
padding-top: unset;
padding-left: unset;
}
/* new blog post ends */
2 changes: 1 addition & 1 deletion _includes/layouts/default.njk
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ layout: layouts/base.njk
---
{# {% include "components/npm.njk" %} #}

<article class="post feature-grid pt-10 px-4 text-xl">
<article class="post {{ newpost }} feature-grid pt-10 px-4 text-xl">
<h1 class="text-4xl font-bold my-12">{{ title }}</h1>
{{ layoutContent | safe }}
</article>
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
"build": "npx @11ty/eleventy",
"watch": "npx @11ty/eleventy --watch",
"serve": "npx @11ty/eleventy --serve --incremental --port 8081",
"dev": "npx @11ty/eleventy --serve --port 8081",
"debug": "DEBUG=* npx @11ty/eleventy",
"newpost": "node ./scripts/newPost.js"
},
Expand Down
28 changes: 15 additions & 13 deletions posts/welcome-to-the-team.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,39 +7,41 @@ summary: Read about goals and principles that align our efforts.
tags:
- business
- roadmap
newpost: newpost
---

Fireproof is first and foremost designed to make it trivial for **developers of any skill level** to enhance legacy sites with live data, or write new collaborative apps. The number one goal is making Fireproof the easiest option for someone just starting their web programming journey and the most powerful way expert developers can extend legacy apps and write backend-independent components.

Fireproof is first and foremost designed to make it trivial for **developers of any skill level** to enhance legacy sites with live data, or write new collaborative apps. The number one goal is making Fireproof **the easiest option** for someone just starting their web programming journey and **the most powerful way** expert developers can extend legacy apps and write backend-independent components.
[![bonfire](/static/img/bonfire.jpg)](https://www.flickr.com/photos/petrick/2291498814)

> Fireproof is the most convenient database for beginners and experts alike.

We are informed by [CouchDB](https://couchdb.apache.org) (sync), [SQLite](https://www.sqlite.org) (zero setup), [IPFS](https://ipfs.tech) (data anywhere) and [Supabase](https://supabase.com) (go-to-market). Fireproof is optimized to be **lightweight and easy to install**, so we take care that every line of code in the package matters. We ship rich JSDoc and type hints, and our examples, starter kits, and APIs are designed so **developers fall into the right patterns** because they are the easiest.
We are informed by [CouchDB](https://couchdb.apache.org) (sync), [SQLite](https://www.sqlite.org) (zero setup), [IPFS](https://ipfs.tech) (data anywhere) and [Supabase](https://supabase.com) (go-to-market). Fireproof is optimized to be lightweight and easy to install, so we take care that every line of code in the package matters. We ship rich JSDoc and type hints, and our examples, starter kits, and APIs are designed so developers fall into the right patterns because they are the easiest.

Our experience with NoSQL, IPFS, and browser implementation teaches us that **the most inclusive communities and technologies win**. We foster outside contributions, from docs and design to plugins and core improvements.
Our experience with NoSQL, IPFS, and browser implementation teaches us that the most inclusive communities and technologies win. We foster outside contributions, from docs and design to plugins and core improvements.

The database architecture is aligned with this purpose. Below the core is the lightweight encrypted blockstore, which can be swapped with other implementations like a public or private blockstore, as well as leverage IPFS and WebRTC community code.
The database architecture is aligned with this purpose. Below the core is the **lightweight encrypted blockstore,** which can be swapped with other implementations like a public or private blockstore, as well as leverage IPFS and WebRTC community code.

The core has that Merkle integrity that I won’t say more about here except that we can’t accomplish that first goal, making Fireproof easy for everyone, without it. Because it’s what makes it so **traditional business processes can be brought to the edge and the browser.**
The core has that Merkle integrity that I won’t say more about here except that we can’t accomplish that first goal, making Fireproof easy for everyone, without it. Because it’s what makes it so traditional business processes can be brought to the edge and the browser.

> Fireproof brings traditional business processes to the edge and the browser.

The open-source connectors experience makes it easy for Fireproof to **work with any backend**. As a developer first you build an app with the React `use-fireproof` module or the JS `@fireproof/core` module. Then you connect it to the cloud. Today that means installing a connector module like Netlify or PartyKit, and configuring it with your installation details. It’s important that we maintain this option in the long term, and **adding new connectors will be a source of partner marketing and audience building**.
The open-source connectors experience makes it easy for Fireproof to work with **any backend.** As a developer first you build an app with the React `use-fireproof` module or the JS `@fireproof/core` module. Then you connect it to the cloud. Today that means installing a connector module like Netlify or PartyKit, and configuring it with your installation details. It’s important that we maintain this option in the long term, and adding new connectors will be a source of partner marketing and audience building.

### Developer experience first
## Developer experience first

**Fireproof offers one-click access to live data**, and 95% of users who connect to anything will use our default cloud, which is included in the core module:
Fireproof offers one-click access to live data, and 95% of users who connect to anything will use our default cloud, which is included in the core module:

```js
database.connect("jchris@fireproof.storage")
database.connect("jchris@fireproof.storage");
```

This API call sends an email with a link, and when you click it, you drop into the dashboard with **a live view of the data from whatever app** you were developing. The data is 2-way editable, so you can refine schema in the dashboard, etc. In the long run, the dashboard will get to be more beginner-friendly with eg markdown RTF fields, LLM integration, etc. More like a data notebook than a dashboard. Remember Futon?
This API call sends an email with a link, and when you click it, you drop into the dashboard with a live view of the data from whatever app you were developing. The data is 2-way editable, so you can refine schema in the dashboard, etc. In the long run, the dashboard will get to be more beginner-friendly with eg markdown RTF fields, LLM integration, etc. More like a data notebook than a dashboard. Remember Futon?

The concept of conversion rate drives our every decision. For instance, the docs are on use-fireproof.com b/c we know that a .com can give us reach our dev marketing .storage domain won’t have. We have a `use-fireproof` entrypoint module for React devs because typing `@fireproof/core` is more work than necessary. We default to polyfilled builds because getting quirky webcrypto compatibility right is not a beginner task. We think of our adoption on-ramp like an e-commerce flow, **it’s worth fine-tuning.**
The concept of conversion rate drives our every decision. For instance, the docs are on use-fireproof.com b/c we know that a .com can give us reach our dev marketing .storage domain won’t have. We have a `use-fireproof` entrypoint module for React devs because typing `@fireproof/core` is more work than necessary. We default to polyfilled builds because getting quirky webcrypto compatibility right is not a beginner task. We think of our adoption on-ramp like an e-commerce flow, it’s worth fine-tuning.

### Outreach and community
## Outreach and community

The road to big-time success requires that Fireproof become one of **the most-talked-about databases**, and proves itself to be the right fit for the new style of app, so that it can be a top choice through the end of the decade or longer. This wave of development is more valuable than the apps and games of the 2010s, so to become a darling of industry, we have to appeal to the folks in the driver’s seat. Luckily, [these days that is more and more a front-end developer](https://redmonk.com/kholterhoff/2024/02/15/frontend-developers-the-newest-new-kingmakers/), where **Fireproof has home-field advantage.**
The road to big-time success requires that Fireproof become one of **the most-talked-about databases**, and proves itself to be the right fit for the new style of app, so that it can be a top choice through the end of the decade or longer. This wave of development is more valuable than the apps and games of the 2010s, so to become a darling of industry, we have to appeal to the folks in the driver’s seat. Luckily, these days that is more and more a [front-end developer](https://redmonk.com/kholterhoff/2024/02/15/frontend-developers-the-newest-new-kingmakers/), where Fireproof has home-field advantage.

To get there, part of our go-to-market plan is **Fireproof Day**, a movement driven by evangelist content. We’ll contract thought leaders to build amazing example apps in targeted domains, as well as the conference talk to go with them. We’ll take the show on the road, and use the local audiences we draw to seed local Fireproof developer groups, with a monthly event budget, and a backlog of cool demos and slide decks to talk through. Hosting your local Fireproof Day will be an aspirational goal, and we’ll make it easy. To do this right we need to invest in marketing, community, and developer relations. Outside of engineering, this is where the team will be growing in the early months.
Binary file added static/img/bonfire.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion tlas/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
/>
<link
rel="preload"
href="./fonts/GeistVariableVF.woff2"
href="./fonts/InterTight-VariableFont.woff2"
as="font"
type="font/woff2"
crossorigin="anonymous"
Expand Down Expand Up @@ -84,6 +84,7 @@
* {
-webkit-box-sizing: border-box;
box-sizing: border-box;
-webkit-font-smoothing: antialiased;
}

body {
Expand Down