VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS0.00%
Net Worth
0.034USD
STEEM
0.000STEEM
SBD
0.000SBD
Effective Power
5.001SP
├── Own SP
0.632SP
└── Incoming DelegationsDeleg
+4.369SP
Detailed Balance
| STEEM | ||
| balance | 0.000STEEM | STEEM |
| market_balance | 0.000STEEM | STEEM |
| savings_balance | 0.000STEEM | STEEM |
| reward_steem_balance | 0.000STEEM | STEEM |
| STEEM POWER | ||
| Own SP | 0.632SP | SP |
| Delegated Out | 0.000SP | SP |
| Delegation In | 4.369SP | SP |
| Effective Power | 5.001SP | SP |
| Reward SP (pending) | 0.000SP | SP |
| SBD | ||
| sbd_balance | 0.000SBD | SBD |
| sbd_conversions | 0.000SBD | SBD |
| sbd_market_balance | 0.000SBD | SBD |
| savings_sbd_balance | 0.000SBD | SBD |
| reward_sbd_balance | 0.000SBD | SBD |
{
"balance": "0.000 STEEM",
"savings_balance": "0.000 STEEM",
"reward_steem_balance": "0.000 STEEM",
"vesting_shares": "1028.900237 VESTS",
"delegated_vesting_shares": "0.000000 VESTS",
"received_vesting_shares": "7114.759569 VESTS",
"sbd_balance": "0.000 SBD",
"savings_sbd_balance": "0.000 SBD",
"reward_sbd_balance": "0.000 SBD",
"conversions": []
}Account Info
| name | dfg |
| id | 405730 |
| rank | 1,423,175 |
| reputation | 0 |
| created | 2017-10-10T09:41:39 |
| recovery_account | steem |
| proxy | None |
| post_count | 1 |
| comment_count | 0 |
| lifetime_vote_count | 0 |
| witnesses_voted_for | 0 |
| last_post | 2017-10-10T09:46:15 |
| last_root_post | 2017-10-10T09:46:15 |
| last_vote_time | 1970-01-01T00:00:00 |
| proxied_vsf_votes | 0, 0, 0, 0 |
| can_vote | 1 |
| voting_power | 0 |
| delayed_votes | 0 |
| balance | 0.000 STEEM |
| savings_balance | 0.000 STEEM |
| sbd_balance | 0.000 SBD |
| savings_sbd_balance | 0.000 SBD |
| vesting_shares | 1028.900237 VESTS |
| delegated_vesting_shares | 0.000000 VESTS |
| received_vesting_shares | 7114.759569 VESTS |
| reward_vesting_balance | 0.000000 VESTS |
| vesting_balance | 0.000 STEEM |
| vesting_withdraw_rate | 0.000000 VESTS |
| next_vesting_withdrawal | 1969-12-31T23:59:59 |
| withdrawn | 0 |
| to_withdraw | 0 |
| withdraw_routes | 0 |
| savings_withdraw_requests | 0 |
| last_account_recovery | 1970-01-01T00:00:00 |
| reset_account | null |
| last_owner_update | 1970-01-01T00:00:00 |
| last_account_update | 2017-10-10T09:43:09 |
| mined | No |
| sbd_seconds | 0 |
| sbd_last_interest_payment | 1970-01-01T00:00:00 |
| savings_sbd_last_interest_payment | 1970-01-01T00:00:00 |
{
"id": 405730,
"name": "dfg",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM6Q6xJsgfBDHajzvNSCZpaww8SASicTHjVEGKogo33MkKxiExKF",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7VgdBninPLy5gTgFQjP811diKi8sQocuZYJM9ZjdbtcHPB6D5B",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5ASuLcGWnq3Mv5Q4RTdoRFPeDtLxAnCqzSrjxpQFxaGscQXvWq",
1
]
]
},
"memo_key": "STM53N8Adt8sLv2CWyDpnoWzc1T4SEK1jtZNBT2vKhMNUkfP4jKaf",
"json_metadata": "{\"profile\":{\"profile_image\":\"https://media.licdn.com/mpr/mpr/shrinknp_400_400/AAEAAQAAAAAAAASAAAAAJDJmNjNkNDMzLTI4MWEtNDNkOC04NTQ3LWEwMmE5M2FmODgzOQ.jpg\",\"name\":\"DanielFortuyn\",\"location\":\"Leiden, The Netherlands\",\"website\":\"https://www.vdbf.nl\"}}",
"posting_json_metadata": "{\"profile\":{\"profile_image\":\"https://media.licdn.com/mpr/mpr/shrinknp_400_400/AAEAAQAAAAAAAASAAAAAJDJmNjNkNDMzLTI4MWEtNDNkOC04NTQ3LWEwMmE5M2FmODgzOQ.jpg\",\"name\":\"DanielFortuyn\",\"location\":\"Leiden, The Netherlands\",\"website\":\"https://www.vdbf.nl\"}}",
"proxy": "",
"last_owner_update": "1970-01-01T00:00:00",
"last_account_update": "2017-10-10T09:43:09",
"created": "2017-10-10T09:41:39",
"mined": false,
"recovery_account": "steem",
"last_account_recovery": "1970-01-01T00:00:00",
"reset_account": "null",
"comment_count": 0,
"lifetime_vote_count": 0,
"post_count": 1,
"can_vote": true,
"voting_manabar": {
"current_mana": "8143659806",
"last_update_time": 1779060435
},
"downvote_manabar": {
"current_mana": 2035914951,
"last_update_time": 1779060435
},
"voting_power": 0,
"balance": "0.000 STEEM",
"savings_balance": "0.000 STEEM",
"sbd_balance": "0.000 SBD",
"sbd_seconds": "0",
"sbd_seconds_last_update": "1970-01-01T00:00:00",
"sbd_last_interest_payment": "1970-01-01T00:00:00",
"savings_sbd_balance": "0.000 SBD",
"savings_sbd_seconds": "0",
"savings_sbd_seconds_last_update": "1970-01-01T00:00:00",
"savings_sbd_last_interest_payment": "1970-01-01T00:00:00",
"savings_withdraw_requests": 0,
"reward_sbd_balance": "0.000 SBD",
"reward_steem_balance": "0.000 STEEM",
"reward_vesting_balance": "0.000000 VESTS",
"reward_vesting_steem": "0.000 STEEM",
"vesting_shares": "1028.900237 VESTS",
"delegated_vesting_shares": "0.000000 VESTS",
"received_vesting_shares": "7114.759569 VESTS",
"vesting_withdraw_rate": "0.000000 VESTS",
"next_vesting_withdrawal": "1969-12-31T23:59:59",
"withdrawn": 0,
"to_withdraw": 0,
"withdraw_routes": 0,
"curation_rewards": 0,
"posting_rewards": 0,
"proxied_vsf_votes": [
0,
0,
0,
0
],
"witnesses_voted_for": 0,
"last_post": "2017-10-10T09:46:15",
"last_root_post": "2017-10-10T09:46:15",
"last_vote_time": "1970-01-01T00:00:00",
"post_bandwidth": 0,
"pending_claimed_accounts": 0,
"vesting_balance": "0.000 STEEM",
"reputation": 0,
"transfer_history": [],
"market_history": [],
"post_history": [],
"vote_history": [],
"other_history": [],
"witness_votes": [],
"tags_usage": [],
"guest_bloggers": [],
"rank": 1423175
}Withdraw Routes
| Incoming | Outgoing |
|---|---|
Empty | Empty |
{
"incoming": [],
"outgoing": []
}From Date
To Date
2026/05/17 23:27:15
2026/05/17 23:27:15
| delegator | steem |
| delegatee | dfg |
| vesting shares | 7114.759569 VESTS |
| Transaction Info | Block #106142493/Trx 48ae951fd6d5941987070673b287c7c88a6fada7 |
View Raw JSON Data
{
"trx_id": "48ae951fd6d5941987070673b287c7c88a6fada7",
"block": 106142493,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2026-05-17T23:27:15",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "7114.759569 VESTS"
}
]
}2026/05/12 00:36:21
2026/05/12 00:36:21
| delegator | steem |
| delegatee | dfg |
| vesting shares | 4402.549164 VESTS |
| Transaction Info | Block #105971838/Trx 42bb37268ad97486e0039ee9216e53fe88417346 |
View Raw JSON Data
{
"trx_id": "42bb37268ad97486e0039ee9216e53fe88417346",
"block": 105971838,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2026-05-12T00:36:21",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "4402.549164 VESTS"
}
]
}2026/04/25 22:49:30
2026/04/25 22:49:30
| delegator | steem |
| delegatee | dfg |
| vesting shares | 7127.275325 VESTS |
| Transaction Info | Block #105510170/Trx 0433715ca657bbed65c64f76b0fb18837de51bc1 |
View Raw JSON Data
{
"trx_id": "0433715ca657bbed65c64f76b0fb18837de51bc1",
"block": 105510170,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2026-04-25T22:49:30",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "7127.275325 VESTS"
}
]
}2026/01/23 05:39:15
2026/01/23 05:39:15
| delegator | steem |
| delegatee | dfg |
| vesting shares | 4444.095983 VESTS |
| Transaction Info | Block #102849235/Trx 5cd0e612397bc1fe3ace3be463707b241beace72 |
View Raw JSON Data
{
"trx_id": "5cd0e612397bc1fe3ace3be463707b241beace72",
"block": 102849235,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2026-01-23T05:39:15",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "4444.095983 VESTS"
}
]
}2024/12/17 00:59:03
2024/12/17 00:59:03
| delegator | steem |
| delegatee | dfg |
| vesting shares | 4608.315180 VESTS |
| Transaction Info | Block #91295659/Trx ec2f793eac446816ce0fde7c69ce51a4f8a49432 |
View Raw JSON Data
{
"trx_id": "ec2f793eac446816ce0fde7c69ce51a4f8a49432",
"block": 91295659,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2024-12-17T00:59:03",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "4608.315180 VESTS"
}
]
}2023/11/13 16:42:30
2023/11/13 16:42:30
| delegator | steem |
| delegatee | dfg |
| vesting shares | 4777.448712 VESTS |
| Transaction Info | Block #79849885/Trx 75dbd714e04e1f66209d2426c2a3e4ccffa30e53 |
View Raw JSON Data
{
"trx_id": "75dbd714e04e1f66209d2426c2a3e4ccffa30e53",
"block": 79849885,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2023-11-13T16:42:30",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "4777.448712 VESTS"
}
]
}2023/09/21 20:53:21
2023/09/21 20:53:21
| delegator | steem |
| delegatee | dfg |
| vesting shares | 7714.727498 VESTS |
| Transaction Info | Block #78346702/Trx e89d425879a1b5467e70a7e2d9056fb51408d8f5 |
View Raw JSON Data
{
"trx_id": "e89d425879a1b5467e70a7e2d9056fb51408d8f5",
"block": 78346702,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2023-09-21T20:53:21",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "7714.727498 VESTS"
}
]
}2022/11/03 10:48:21
2022/11/03 10:48:21
| delegator | steem |
| delegatee | dfg |
| vesting shares | 7936.408936 VESTS |
| Transaction Info | Block #69112190/Trx 7be6c482ba98f421fb87429386debc3deb1ae541 |
View Raw JSON Data
{
"trx_id": "7be6c482ba98f421fb87429386debc3deb1ae541",
"block": 69112190,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2022-11-03T10:48:21",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "7936.408936 VESTS"
}
]
}2022/01/17 10:08:42
2022/01/17 10:08:42
| delegator | steem |
| delegatee | dfg |
| vesting shares | 8156.942167 VESTS |
| Transaction Info | Block #60808445/Trx 9a45772455d06ab23b1acbaca1a8903fad0d29c9 |
View Raw JSON Data
{
"trx_id": "9a45772455d06ab23b1acbaca1a8903fad0d29c9",
"block": 60808445,
"trx_in_block": 11,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2022-01-17T10:08:42",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "8156.942167 VESTS"
}
]
}2021/06/14 00:05:51
2021/06/14 00:05:51
| delegator | steem |
| delegatee | dfg |
| vesting shares | 8340.710825 VESTS |
| Transaction Info | Block #54606872/Trx e56334f6152af05e806fa1c777f624f028205811 |
View Raw JSON Data
{
"trx_id": "e56334f6152af05e806fa1c777f624f028205811",
"block": 54606872,
"trx_in_block": 11,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2021-06-14T00:05:51",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "8340.710825 VESTS"
}
]
}2020/12/11 10:26:03
2020/12/11 10:26:03
| delegator | steem |
| delegatee | dfg |
| vesting shares | 8528.132799 VESTS |
| Transaction Info | Block #49354366/Trx 8868f6886eaef6e206973b27943a976cc30ca047 |
View Raw JSON Data
{
"trx_id": "8868f6886eaef6e206973b27943a976cc30ca047",
"block": 49354366,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-12-11T10:26:03",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "8528.132799 VESTS"
}
]
}2020/12/06 04:03:21
2020/12/06 04:03:21
| delegator | steem |
| delegatee | dfg |
| vesting shares | 1912.543513 VESTS |
| Transaction Info | Block #49205930/Trx 57992f94638b27903a6266b3e243da79e5d41a3d |
View Raw JSON Data
{
"trx_id": "57992f94638b27903a6266b3e243da79e5d41a3d",
"block": 49205930,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-12-06T04:03:21",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "1912.543513 VESTS"
}
]
}2020/12/05 12:00:21
2020/12/05 12:00:21
| delegator | steem |
| delegatee | dfg |
| vesting shares | 8534.499438 VESTS |
| Transaction Info | Block #49187036/Trx 3470d79bd2b324abbfa13f11a046c55b4e015ea4 |
View Raw JSON Data
{
"trx_id": "3470d79bd2b324abbfa13f11a046c55b4e015ea4",
"block": 49187036,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-12-05T12:00:21",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "8534.499438 VESTS"
}
]
}2020/11/02 14:08:21
2020/11/02 14:08:21
| delegator | steem |
| delegatee | dfg |
| vesting shares | 1920.017158 VESTS |
| Transaction Info | Block #48256038/Trx 3bba3ff4217205c6b1efaa7f5d7868bc9b15a018 |
View Raw JSON Data
{
"trx_id": "3bba3ff4217205c6b1efaa7f5d7868bc9b15a018",
"block": 48256038,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-11-02T14:08:21",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "1920.017158 VESTS"
}
]
}2020/05/09 04:59:42
2020/05/09 04:59:42
| delegator | steem |
| delegatee | dfg |
| vesting shares | 8737.146012 VESTS |
| Transaction Info | Block #43216166/Trx 45470673ab20b89c7b9344ba2b42bce209ba735a |
View Raw JSON Data
{
"trx_id": "45470673ab20b89c7b9344ba2b42bce209ba735a",
"block": 43216166,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-05-09T04:59:42",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "8737.146012 VESTS"
}
]
}2020/05/08 08:29:15
2020/05/08 08:29:15
| delegator | steem |
| delegatee | dfg |
| vesting shares | 1953.311140 VESTS |
| Transaction Info | Block #43192134/Trx 841942cfc5aaff9ccd3da1559925edb670db4e21 |
View Raw JSON Data
{
"trx_id": "841942cfc5aaff9ccd3da1559925edb670db4e21",
"block": 43192134,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-05-08T08:29:15",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "1953.311140 VESTS"
}
]
}2020/04/15 21:09:09
2020/04/15 21:09:09
| delegator | steem |
| delegatee | dfg |
| vesting shares | 8750.123431 VESTS |
| Transaction Info | Block #42562021/Trx 2d9630b990201dc2c368ee5b47b0f7a18a73d537 |
View Raw JSON Data
{
"trx_id": "2d9630b990201dc2c368ee5b47b0f7a18a73d537",
"block": 42562021,
"trx_in_block": 18,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-04-15T21:09:09",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "8750.123431 VESTS"
}
]
}2019/10/10 10:44:15
2019/10/10 10:44:15
| parent author | dfg |
| parent permlink | 7-step-guide-to-jamstack-webdevelopment-in-2018 |
| author | steemitboard |
| permlink | steemitboard-notify-dfg-20191010t104414000z |
| title | |
| body | Congratulations @dfg! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@dfg/birthday2.png</td><td>Happy Birthday! - You are on the Steem blockchain for 2 years!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@dfg) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=dfg)_</sub> **Do not miss the last post from @steemitboard:** <table><tr><td><a href="https://steemit.com/steemfest/@steemitboard/the-new-steemfest-badge-is-ready"><img src="https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmRUkELn2Fd13pWFkmWU2wBMMx39EBX5V3cHBEZ2d7f3Ve/image.png"></a></td><td><a href="https://steemit.com/steemfest/@steemitboard/the-new-steemfest-badge-is-ready">The new SteemFest⁴ badge is ready</a></td></tr></table> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes! |
| json metadata | {"image":["https://steemitboard.com/img/notify.png"]} |
| Transaction Info | Block #37159334/Trx 60ccc53c44d6ce6037365c7a9f2e022a923cfa2b |
View Raw JSON Data
{
"trx_id": "60ccc53c44d6ce6037365c7a9f2e022a923cfa2b",
"block": 37159334,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-10-10T10:44:15",
"op": [
"comment",
{
"parent_author": "dfg",
"parent_permlink": "7-step-guide-to-jamstack-webdevelopment-in-2018",
"author": "steemitboard",
"permlink": "steemitboard-notify-dfg-20191010t104414000z",
"title": "",
"body": "Congratulations @dfg! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@dfg/birthday2.png</td><td>Happy Birthday! - You are on the Steem blockchain for 2 years!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@dfg) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=dfg)_</sub>\n\n\n**Do not miss the last post from @steemitboard:**\n<table><tr><td><a href=\"https://steemit.com/steemfest/@steemitboard/the-new-steemfest-badge-is-ready\"><img src=\"https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmRUkELn2Fd13pWFkmWU2wBMMx39EBX5V3cHBEZ2d7f3Ve/image.png\"></a></td><td><a href=\"https://steemit.com/steemfest/@steemitboard/the-new-steemfest-badge-is-ready\">The new SteemFest⁴ badge is ready</a></td></tr></table>\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!",
"json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
}
]
}2019/05/12 14:23:57
2019/05/12 14:23:57
| delegator | steem |
| delegatee | dfg |
| vesting shares | 8945.746236 VESTS |
| Transaction Info | Block #32844882/Trx e7dc78196e69c54a531a8ca892dcbafaa0a6b4de |
View Raw JSON Data
{
"trx_id": "e7dc78196e69c54a531a8ca892dcbafaa0a6b4de",
"block": 32844882,
"trx_in_block": 7,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-12T14:23:57",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "8945.746236 VESTS"
}
]
}2018/05/16 20:14:00
2018/05/16 20:14:00
| delegator | steem |
| delegatee | dfg |
| vesting shares | 9145.298671 VESTS |
| Transaction Info | Block #22489781/Trx c1e4db1f0e4846ac0fd95717cfbb0fab6ab557ba |
View Raw JSON Data
{
"trx_id": "c1e4db1f0e4846ac0fd95717cfbb0fab6ab557ba",
"block": 22489781,
"trx_in_block": 10,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-05-16T20:14:00",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "9145.298671 VESTS"
}
]
}2018/02/21 23:05:45
2018/02/21 23:05:45
| delegator | steem |
| delegatee | dfg |
| vesting shares | 29628.116345 VESTS |
| Transaction Info | Block #20076545/Trx a2f055b3ac1511a6db6b40f1d4957da5999f2148 |
View Raw JSON Data
{
"trx_id": "a2f055b3ac1511a6db6b40f1d4957da5999f2148",
"block": 20076545,
"trx_in_block": 56,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-21T23:05:45",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "29628.116345 VESTS"
}
]
}2017/10/13 05:08:42
2017/10/13 05:08:42
| delegator | steem |
| delegatee | dfg |
| vesting shares | 29833.099763 VESTS |
| Transaction Info | Block #16285170/Trx 255434e635611ed431ee86f5e5a1a15acbff84df |
View Raw JSON Data
{
"trx_id": "255434e635611ed431ee86f5e5a1a15acbff84df",
"block": 16285170,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-10-13T05:08:42",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "dfg",
"vesting_shares": "29833.099763 VESTS"
}
]
}dfgpublished a new post: 7-step-guide-to-jamstack-webdevelopment-in-20182017/10/10 09:46:15
dfgpublished a new post: 7-step-guide-to-jamstack-webdevelopment-in-2018
2017/10/10 09:46:15
| parent author | |
| parent permlink | webdevelopment |
| author | dfg |
| permlink | 7-step-guide-to-jamstack-webdevelopment-in-2018 |
| title | 7 step guide to Jamstack webdevelopment in 2018 |
| body | # 7 step guide to JAMStack webdevelopment in 2018 Combined with the proliferation of single page websites, and serving content dynamically via API calls, static website development has made somewhat of a comeback. While initially this might feel as step backwards, significant advantages can be obtained if this new approach is used for the right job. Recent developments in web technology have increased the potential of the concept. The essential part of this approach is not even very complex. The main idea is to use modern automation tools to, effectively build, a static version of an otherwise traditionally dynamic website. First I will discuss what tools and components are used in the creation of such a website. Then I will briefly discuss in what way they are used to provide the elements needed for a standard web application. In the third and final part of this post I will look at the challenges and the advantages of this approach. Finally I will briefly discuss what this means for contemporary web development. So what does a simple setup look like? I will start by addressing the obvious and necessary components. From there I will address optional and more advanced components that can be added to the setup. - Static file hosting (AWS S3, Google App Engine, GitHub Pages) - Template Language (Twig, Handlebars) - Content (Content as a Service, Template files, External API) - Task Runner (Gulp, Grunt, NPM) - CI/CD (GitLab / GitHub) - Function as a Service combined with an API Gateway (AWS Lambda, Google Cloud Functions) - Cloud Database instance (AWS Dynamo DB, Google Cloud Spanner etc) ### Static file hosting The first thing we need to discuss is already common knowledge. Recently it has become really easy to host static files for the web. By just uploading your files to one of these services you are able to easily expose them through http(s). Several companies offer this type of static file hosting, however the two most commonly known vendors are AWS and GitHub. The options span from cheap AWS to free at GitHub. (Yes that is free as in ‘free beer’). ### Template language A fairly obvious critique of creating static websites is the fact that they used to be a nightmare to maintain. Let’s say you have a simple website comprised of about ten pages. You might have to change ten files if you want to change some common detail in those pages. Enter the second component a template language. Traditionally a dynamic webserver, would be used to stitch together the templates with the layouts on request. However in this setup we are going to pre build every page on the site so the webserver can relax and directly respond with the finished page. Would it not be great if we could add the flexibility of a CMS to this setup? I will discuss this part next but we need two more components to do so: content and a task runner. ### Content First you need a source of content, this can take the form of a couple of template files, but it could also be based on a Content as a Service provider such as Contentful. This basically enables you to focus on creating a great frontend without worrying about having to create and maintain a backend. Contentful exposes content through an API and it allows us to fetch the content during the build stage of the website. We recommend using contentful as it is a simple way to manage content for people who are not familiar with markup languages. ### Task runner As I mentioned before we need something to stitch together the templates and content. The best approach is to use a task runner and a watcher. The watcher will monitor the templates and whenever they change run the task that will effectively build the static HTML pages. This can easily be achieved by creating a corresponding gulp, grunt or even native node task for it. This is basically everything you need to create a simple but manageable static website. This stack supports huge amounts of traffic while being exceptionally fast and cheap at the same time. The next steps are geared towards further automation or supporting increasingly more advanced features of websites. First lets look at further automation of building the resources and static HTML files. ### Continuous Integration and Continuous Deployment (CI/CD) The first component of the more advanced part of this guide is to make use of CI/CD in order to relocate the task of creating the static pages and the resources to the CI/CD environment of your repository host. More accurately it is interesting to make a separate task for building and deploying because some tasks, like combining and minifying CSS and JavaScript and to some extend HTML can further increase the performance of the site. However it should be noted that at least basic knowledge on using docker and configuring your CI/CD environment is welcome, as things can quickly get quite complicated. ### Function as a Service architecture Of course most modern website have to do more than just show some content. How would we go about processing data in this setup? Recently I have written a couple of posts on serverless architecture. In essence this is the solution to the problem that static website’s pose in this respect. FaaS architecture makes sure a static website can communicate with a more intelligent API. Moreover it ranks at the top of scalable solutions as it couples a HTTP web endpoint to a preprogrammed function. Basically removing the need to have a (virtual) server to handle backend code. ### Cloud Database The last thing a modern web application needs is database interaction. Where function as a service solves the problem of accessing dynamic content, the cloud database can provide this dynamic content (for example product searches). At first glance it might look difficult to connect a database to this setup. Once again, this is something the dynamic webserver would facilitate. However several providers have started to sell database as a service solutions. With some even providing the opportunity to just use one table for very simple and elegant solutions. Moreover these cloud databases can easily be accessed from AWS Lambda or Google Cloud functions. Therefor finally eradicating the need for any dedicated server in this setup. This allows basically any website or -application to run as a statically hosted page. Therefor this approach makes creating scalable webapplication cheap and lightning fast. However, every approach has drawbacks. Let’s look at some of the negative sides of this specific setup. Afterwards I will discuss the advantages and finally I will conclude which type of application is best suited for development along these lines. ## Drawbacks The most obvious drawback of this approach is the fact that it can be complex to manage this environment. For starters even the simplest setup (static html pages based on templates) can be difficult to manage for people who lack experience with HTML and/or templating languages. Moreover setting up an environment like this requires some trial and error at a bare minimum. Finally every additional step will increase the complexity more than the previous. CI/CD, FaaS and Cloud Databases are currently advanced solutions that require the skill of a DevOps expert. If you are not familiar with elements that are needed for this setup it can take quite some time to get started. If you just want to bootstrap a simple application this setup might not be for you. A second issue is the fact that this specific approach is not very well suited for complex web applications. The setup we discussed here is specifically directed at creating high performing, but relatively simple, websites. In upcoming posts we can explore possibilities of creating webapplications based on static pages. Recent examples of other approaches are GatsbyJS (based on react.js) and nuxt.js (based on vue.js). They might be better at dealing with JavaScript heavy and complex applications. In upcoming posts we might look to into other ways of creating a static version of such an application. Angular has the Angular Universal package but this relies on isomorphic rendering which is technically server side rendering of a webpage so this does not fit the JAMStack approach. ## Advantages However by now the advantages should be sufficiently clear. First, as promised, this setup should be lightning fast. Second, every component in this setup scales extremely well. Third, it is easier to keep this setup safe as the attack surface is reduced to the API endpoints that you use. Moreover the attack surface is reduced even further because the need to provide a separate CMS stack can be eliminated. Finally it is comparatively cheap. Static storage is cheap, with FaaS you only pay when a call is made to your function and the same applies for cloud databases. This means when your application is not used, you will not pay. This eliminates overhead that usually occurs when you need to pay a periodical fee for a VPS. ## Conclusion The final question that remains is for what type of projects this stack we described is best suited. By now it should be clear that this approach is most suitable for comparatively simple applications that have to scale well in high traffic environments. However, I can see this technique proliferating to more complex webapplications sooner than later. That brings me to what this means for web development in 2018. In general I feel like these developments will lead to a further decline of traditional backend languages such as PHP and Ruby. Follow our channel or give me a clap if you enjoyed reading this (lengthy) post :) |
| json metadata | {"tags":["webdevelopment","jamstack","staticwebsite","webtechnology","guide"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #16204392/Trx 9ae4b7bef8773b3d4105ab06eb8b5443e18afcf2 |
View Raw JSON Data
{
"trx_id": "9ae4b7bef8773b3d4105ab06eb8b5443e18afcf2",
"block": 16204392,
"trx_in_block": 14,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-10-10T09:46:15",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "webdevelopment",
"author": "dfg",
"permlink": "7-step-guide-to-jamstack-webdevelopment-in-2018",
"title": "7 step guide to Jamstack webdevelopment in 2018",
"body": "# 7 step guide to JAMStack webdevelopment in 2018\nCombined with the proliferation of single page websites, and serving content dynamically via API calls, static website development has made somewhat of a comeback. While initially this might feel as step backwards, significant advantages can be obtained if this new approach is used for the right job. Recent developments in web technology have increased the potential of the concept.\n\nThe essential part of this approach is not even very complex. The main idea is to use modern automation tools to, effectively build, a static version of an otherwise traditionally dynamic website. First I will discuss what tools and components are used in the creation of such a website. Then I will briefly discuss in what way they are used to provide the elements needed for a standard web application. In the third and final part of this post I will look at the challenges and the advantages of this approach. Finally I will briefly discuss what this means for contemporary web development.\n\nSo what does a simple setup look like? I will start by addressing the obvious and necessary components. From there I will address optional and more advanced components that can be added to the setup.\n\n- Static file hosting (AWS S3, Google App Engine, GitHub Pages)\n- Template Language (Twig, Handlebars)\n- Content (Content as a Service, Template files, External API)\n- Task Runner (Gulp, Grunt, NPM)\n- CI/CD (GitLab / GitHub)\n- Function as a Service combined with an API Gateway (AWS Lambda, Google Cloud Functions)\n- Cloud Database instance (AWS Dynamo DB, Google Cloud Spanner etc)\n\n### Static file hosting\nThe first thing we need to discuss is already common knowledge. Recently it has become really easy to host static files for the web. By just uploading your files to one of these services you are able to easily expose them through http(s). Several companies offer this type of static file hosting, however the two most commonly known vendors are AWS and GitHub. The options span from cheap AWS to free at GitHub. (Yes that is free as in ‘free beer’).\n\n### Template language\nA fairly obvious critique of creating static websites is the fact that they used to be a nightmare to maintain. Let’s say you have a simple website comprised of about ten pages. You might have to change ten files if you want to change some common detail in those pages. Enter the second component a template language. Traditionally a dynamic webserver, would be used to stitch together the templates with the layouts on request. However in this setup we are going to pre build every page on the site so the webserver can relax and directly respond with the finished page. Would it not be great if we could add the flexibility of a CMS to this setup? I will discuss this part next but we need two more components to do so: content and a task runner.\n### Content\n\nFirst you need a source of content, this can take the form of a couple of template files, but it could also be based on a Content as a Service provider such as Contentful. This basically enables you to focus on creating a great frontend without worrying about having to create and maintain a backend. Contentful exposes content through an API and it allows us to fetch the content during the build stage of the website. We recommend using contentful as it is a simple way to manage content for people who are not familiar with markup languages.\n\n### Task runner\nAs I mentioned before we need something to stitch together the templates and content. The best approach is to use a task runner and a watcher. The watcher will monitor the templates and whenever they change run the task that will effectively build the static HTML pages. This can easily be achieved by creating a corresponding gulp, grunt or even native node task for it. This is basically everything you need to create a simple but manageable static website. This stack supports huge amounts of traffic while being exceptionally fast and cheap at the same time. The next steps are geared towards further automation or supporting increasingly more advanced features of websites. First lets look at further automation of building the resources and static HTML files.\n\n### Continuous Integration and Continuous Deployment (CI/CD)\nThe first component of the more advanced part of this guide is to make use of CI/CD in order to relocate the task of creating the static pages and the resources to the CI/CD environment of your repository host. More accurately it is interesting to make a separate task for building and deploying because some tasks, like combining and minifying CSS and JavaScript and to some extend HTML can further increase the performance of the site. However it should be noted that at least basic knowledge on using docker and configuring your CI/CD environment is welcome, as things can quickly get quite complicated.\n\n### Function as a Service architecture\nOf course most modern website have to do more than just show some content. How would we go about processing data in this setup? Recently I have written a couple of posts on serverless architecture. In essence this is the solution to the problem that static website’s pose in this respect. FaaS architecture makes sure a static website can communicate with a more intelligent API. Moreover it ranks at the top of scalable solutions as it couples a HTTP web endpoint to a preprogrammed function. Basically removing the need to have a (virtual) server to handle backend code.\n### Cloud Database\nThe last thing a modern web application needs is database interaction. Where function as a service solves the problem of accessing dynamic content, the cloud database can provide this dynamic content (for example product searches). At first glance it might look difficult to connect a database to this setup. Once again, this is something the dynamic webserver would facilitate. However several providers have started to sell database as a service solutions. With some even providing the opportunity to just use one table for very simple and elegant solutions. Moreover these cloud databases can easily be accessed from AWS Lambda or Google Cloud functions. Therefor finally eradicating the need for any dedicated server in this setup. This allows basically any website or -application to run as a statically hosted page. Therefor this approach makes creating scalable webapplication cheap and lightning fast.\n\nHowever, every approach has drawbacks. Let’s look at some of the negative sides of this specific setup. Afterwards I will discuss the advantages and finally I will conclude which type of application is best suited for development along these lines.\n\n## Drawbacks\nThe most obvious drawback of this approach is the fact that it can be complex to manage this environment. For starters even the simplest setup (static html pages based on templates) can be difficult to manage for people who lack experience with HTML and/or templating languages. Moreover setting up an environment like this requires some trial and error at a bare minimum. Finally every additional step will increase the complexity more than the previous. CI/CD, FaaS and Cloud Databases are currently advanced solutions that require the skill of a DevOps expert. If you are not familiar with elements that are needed for this setup it can take quite some time to get started. If you just want to bootstrap a simple application this setup might not be for you.\nA second issue is the fact that this specific approach is not very well suited for complex web applications. The setup we discussed here is specifically directed at creating high performing, but relatively simple, websites. In upcoming posts we can explore possibilities of creating webapplications based on static pages. Recent examples of other approaches are GatsbyJS (based on react.js) and nuxt.js (based on vue.js). They might be better at dealing with JavaScript heavy and complex applications.\nIn upcoming posts we might look to into other ways of creating a static version of such an application. Angular has the Angular Universal package but this relies on isomorphic rendering which is technically server side rendering of a webpage so this does not fit the JAMStack approach.\n## Advantages\nHowever by now the advantages should be sufficiently clear. First, as promised, this setup should be lightning fast. Second, every component in this setup scales extremely well. Third, it is easier to keep this setup safe as the attack surface is reduced to the API endpoints that you use. Moreover the attack surface is reduced even further because the need to provide a separate CMS stack can be eliminated. Finally it is comparatively cheap. Static storage is cheap, with FaaS you only pay when a call is made to your function and the same applies for cloud databases. This means when your application is not used, you will not pay. This eliminates overhead that usually occurs when you need to pay a periodical fee for a VPS.\n## Conclusion\nThe final question that remains is for what type of projects this stack we described is best suited. By now it should be clear that this approach is most suitable for comparatively simple applications that have to scale well in high traffic environments. However, I can see this technique proliferating to more complex webapplications sooner than later. That brings me to what this means for web development in 2018. In general I feel like these developments will lead to a further decline of traditional backend languages such as PHP and Ruby.\n\nFollow our channel or give me a clap if you enjoyed reading this (lengthy) post :)",
"json_metadata": "{\"tags\":[\"webdevelopment\",\"jamstack\",\"staticwebsite\",\"webtechnology\",\"guide\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}dfgupdated their account properties2017/10/10 09:43:09
dfgupdated their account properties
2017/10/10 09:43:09
| account | dfg |
| memo key | STM53N8Adt8sLv2CWyDpnoWzc1T4SEK1jtZNBT2vKhMNUkfP4jKaf |
| json metadata | {"profile":{"profile_image":"https://media.licdn.com/mpr/mpr/shrinknp_400_400/AAEAAQAAAAAAAASAAAAAJDJmNjNkNDMzLTI4MWEtNDNkOC04NTQ3LWEwMmE5M2FmODgzOQ.jpg","name":"DanielFortuyn","location":"Leiden, The Netherlands","website":"https://www.vdbf.nl"}} |
| Transaction Info | Block #16204330/Trx d53d1edf68f972a0799b8c0528ca8ecd3e28df7e |
View Raw JSON Data
{
"trx_id": "d53d1edf68f972a0799b8c0528ca8ecd3e28df7e",
"block": 16204330,
"trx_in_block": 5,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-10-10T09:43:09",
"op": [
"account_update",
{
"account": "dfg",
"memo_key": "STM53N8Adt8sLv2CWyDpnoWzc1T4SEK1jtZNBT2vKhMNUkfP4jKaf",
"json_metadata": "{\"profile\":{\"profile_image\":\"https://media.licdn.com/mpr/mpr/shrinknp_400_400/AAEAAQAAAAAAAASAAAAAJDJmNjNkNDMzLTI4MWEtNDNkOC04NTQ3LWEwMmE5M2FmODgzOQ.jpg\",\"name\":\"DanielFortuyn\",\"location\":\"Leiden, The Netherlands\",\"website\":\"https://www.vdbf.nl\"}}"
}
]
}2017/10/10 09:41:39
2017/10/10 09:41:39
| fee | 0.500 STEEM |
| delegation | 57000.000000 VESTS |
| creator | steem |
| new account name | dfg |
| owner | {"weight_threshold":1,"account_auths":[],"key_auths":[["STM6Q6xJsgfBDHajzvNSCZpaww8SASicTHjVEGKogo33MkKxiExKF",1]]} |
| active | {"weight_threshold":1,"account_auths":[],"key_auths":[["STM7VgdBninPLy5gTgFQjP811diKi8sQocuZYJM9ZjdbtcHPB6D5B",1]]} |
| posting | {"weight_threshold":1,"account_auths":[],"key_auths":[["STM5ASuLcGWnq3Mv5Q4RTdoRFPeDtLxAnCqzSrjxpQFxaGscQXvWq",1]]} |
| memo key | STM53N8Adt8sLv2CWyDpnoWzc1T4SEK1jtZNBT2vKhMNUkfP4jKaf |
| json metadata | |
| extensions | [] |
| Transaction Info | Block #16204300/Trx a4c2e08deb3bdc904ecf390d96aa5f8c4a68ecae |
View Raw JSON Data
{
"trx_id": "a4c2e08deb3bdc904ecf390d96aa5f8c4a68ecae",
"block": 16204300,
"trx_in_block": 25,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-10-10T09:41:39",
"op": [
"account_create_with_delegation",
{
"fee": "0.500 STEEM",
"delegation": "57000.000000 VESTS",
"creator": "steem",
"new_account_name": "dfg",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM6Q6xJsgfBDHajzvNSCZpaww8SASicTHjVEGKogo33MkKxiExKF",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7VgdBninPLy5gTgFQjP811diKi8sQocuZYJM9ZjdbtcHPB6D5B",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5ASuLcGWnq3Mv5Q4RTdoRFPeDtLxAnCqzSrjxpQFxaGscQXvWq",
1
]
]
},
"memo_key": "STM53N8Adt8sLv2CWyDpnoWzc1T4SEK1jtZNBT2vKhMNUkfP4jKaf",
"json_metadata": "",
"extensions": []
}
]
}Manabar
Voting Power100.00%
Downvote Power100.00%
Resource Credits100.00%
Reputation Progress0.00%
{
"voting_manabar": {
"current_mana": "8143659806",
"last_update_time": 1779060435
},
"downvote_manabar": {
"current_mana": 2035914951,
"last_update_time": 1779060435
},
"rc_account": {
"account": "dfg",
"rc_manabar": {
"current_mana": "10164408779",
"last_update_time": 1779060435
},
"max_rc_creation_adjustment": {
"amount": "2020748973",
"precision": 6,
"nai": "@@000000037"
},
"max_rc": "10164408779"
}
}Account Metadata
| POSTING JSON METADATA | |
| profile | {"profile_image":"https://media.licdn.com/mpr/mpr/shrinknp_400_400/AAEAAQAAAAAAAASAAAAAJDJmNjNkNDMzLTI4MWEtNDNkOC04NTQ3LWEwMmE5M2FmODgzOQ.jpg","name":"DanielFortuyn","location":"Leiden, The Netherlands","website":"https://www.vdbf.nl"} |
| JSON METADATA | |
| profile | {"profile_image":"https://media.licdn.com/mpr/mpr/shrinknp_400_400/AAEAAQAAAAAAAASAAAAAJDJmNjNkNDMzLTI4MWEtNDNkOC04NTQ3LWEwMmE5M2FmODgzOQ.jpg","name":"DanielFortuyn","location":"Leiden, The Netherlands","website":"https://www.vdbf.nl"} |
{
"posting_json_metadata": {
"profile": {
"profile_image": "https://media.licdn.com/mpr/mpr/shrinknp_400_400/AAEAAQAAAAAAAASAAAAAJDJmNjNkNDMzLTI4MWEtNDNkOC04NTQ3LWEwMmE5M2FmODgzOQ.jpg",
"name": "DanielFortuyn",
"location": "Leiden, The Netherlands",
"website": "https://www.vdbf.nl"
}
},
"json_metadata": {
"profile": {
"profile_image": "https://media.licdn.com/mpr/mpr/shrinknp_400_400/AAEAAQAAAAAAAASAAAAAJDJmNjNkNDMzLTI4MWEtNDNkOC04NTQ3LWEwMmE5M2FmODgzOQ.jpg",
"name": "DanielFortuyn",
"location": "Leiden, The Netherlands",
"website": "https://www.vdbf.nl"
}
}
}Auth Keys
Owner
Single Signature
Public Keys
STM6Q6xJsgfBDHajzvNSCZpaww8SASicTHjVEGKogo33MkKxiExKF1/1
Active
Single Signature
Public Keys
STM7VgdBninPLy5gTgFQjP811diKi8sQocuZYJM9ZjdbtcHPB6D5B1/1
Posting
Single Signature
Public Keys
STM5ASuLcGWnq3Mv5Q4RTdoRFPeDtLxAnCqzSrjxpQFxaGscQXvWq1/1
Memo
STM53N8Adt8sLv2CWyDpnoWzc1T4SEK1jtZNBT2vKhMNUkfP4jKaf
{
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM6Q6xJsgfBDHajzvNSCZpaww8SASicTHjVEGKogo33MkKxiExKF",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7VgdBninPLy5gTgFQjP811diKi8sQocuZYJM9ZjdbtcHPB6D5B",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5ASuLcGWnq3Mv5Q4RTdoRFPeDtLxAnCqzSrjxpQFxaGscQXvWq",
1
]
]
},
"memo": "STM53N8Adt8sLv2CWyDpnoWzc1T4SEK1jtZNBT2vKhMNUkfP4jKaf"
}Witness Votes
0 / 30
No active witness votes.
[]